Skip to content

parser.c: Skip checking for escape sequences in rstring_cache_fetch#890

Merged
byroot merged 1 commit into
ruby:masterfrom
byroot:remove-useless-check
Nov 3, 2025
Merged

parser.c: Skip checking for escape sequences in rstring_cache_fetch#890
byroot merged 1 commit into
ruby:masterfrom
byroot:remove-useless-check

Conversation

@byroot

@byroot byroot commented Nov 3, 2025

Copy link
Copy Markdown
Member

Extracted from: #888

The caller already know if the string contains escape sequences so this check is redundant.

Also stop calling rstring_cache_fetch from json_string_unescape as we know it won't match anyways.

== Parsing twitter.json (567916 bytes)
ruby 3.4.6 (2025-09-16 revision dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
               after   122.000 i/100ms
Calculating -------------------------------------
               after      1.226k (± 0.3%) i/s  (815.85 μs/i) -      6.222k in   5.076282s

Comparison:
              before:     1206.2 i/s
               after:     1225.7 i/s - 1.02x  faster

FYI: @samyron

The caller already know if the string contains escape sequences
so this check is redundant.

Also stop calling `rstring_cache_fetch` from `json_string_unescape`
as we know it won't match anyways.

```
== Parsing twitter.json (567916 bytes)
ruby 3.4.6 (2025-09-16 revision dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
               after   122.000 i/100ms
Calculating -------------------------------------
               after      1.226k (± 0.3%) i/s  (815.85 μs/i) -      6.222k in   5.076282s

Comparison:
              before:     1206.2 i/s
               after:     1225.7 i/s - 1.02x  faster
```

Co-Authored-By: Scott Myron <samyron@gmail.com>
@byroot byroot merged commit f883772 into ruby:master Nov 3, 2025
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant